#region Imported Namespaces


using System.Collections.Generic;

using WtfManager.Framework;
using WtfManager.UIManager.Commands;


#endregion


namespace WtfManager.UIManager
{
  ///<summary>
  /// Loads and manages user interface.
  ///</summary>
  public class UIManagerModule: Module
  {
    #region Properties/Indexers


    /// <summary>
    /// Gets a description of a component.
    /// </summary>
    public override string Description
    {
      get
      {
        return "Manages User Interfaces.";
      }
    }


    /// <summary>
    /// Gets a name of a component.
    /// </summary>
    public override string Name
    {
      get
      {
        return "UI Manager";
      }
    }


    #endregion


    #region Methods


    protected override List<Service> GetModuleServices()
    {
      var components = new List<Service>();

      components.Add(new UIService());
      components.Add(new CommandsService());
      components.Add(new StateManager());
      components.Add(new OpenCommandHandler());
      components.Add(new NavigateUpCommandHandler());
      components.Add(new OpenInNewTabCommandHandler());
      components.Add(new ShowPanelCommandHandler());
      components.Add(new SaveStateCommandHandler());
      components.Add(new RestoreStateCommandHandler());
      components.Add(new DragDropManager());
      components.Add(new MenuManager());
      components.Add(new DockingManagerStateManagerExtension());

      return components;
    }


    #endregion
  }
}